// 页面: 工作台-租赁管理-收费: 添加收费记录
const $app = getApp()
Page({
  data: {
    // ===== 地址传参 =====
    loadParam: {
      id: null, // 合同付款表id
      truePay: 0, // 已经付款的金额
      paymentMoney: 0 // 应付金额
    },
    // ===== 参数 =====
    param: {}, // 保存数据
    error: null // 错误验证
    // ===== end =====
  },
  model (e) { $app.$common_wx.model(e, this) }, // 双向绑定
  // ========== 生命周期: 页面初次渲染完成 ==========
  onReady: function () {},
  // ========== 生命周期: 页面显示 ==========
  onShow: function () {},
  // ========== 生命周期: 页面隐藏 ==========
  onHide: function () {},
  // ========== 生命周期: 页面卸载 ==========
  onUnload: function () {},
  // ========== 生命周期: 页面加载 ==========
  onLoad: function (options) {
    if (!options.id) return
    this.setData({ loadParam: options })
    this.init() // 初始化
  },
  // ========== 初始化 ==========
  init () {
    const param = {
      taskId: this.data.loadParam.id,
      chargeTime: $app.$common.dateFormat(new Date(), 'YYYY-MM-DD'), // 收费时间
      chargeMoney: null, // 收费金额
      loginName: $app.userInfo.name, // 填写人
      operator: $app.userInfo.id, // 当前用户id 填写人id 跟经办人无关
      operatorName: $app.userInfo.name // 经办人
    }
    this.setData({ param })
  },
  // ========== 提交收费记录 ==========
  save () {
    const param = this.data.param
    // 1.验证必填项
    const verify = {
      chargeTime: '收费时间',
      chargeMoney: '收费金额',
      operatorName: '经办人'
    }
    for (const k in verify) {
      const val = Array.isArray(param[k]) ? param[k][0] : param[k]
      if (!$app.$common.noNull(val)) {
        this.setData({ error: k })
        $app.$common.message(verify[k] + '不能为空') // 提示信息
        return
      }
    }
    this.setData({ error: null })
    // 2.判断金额
    const truePay = this.data.loadParam.truePay // 已经付款的金额
    const paymentMoney = this.data.loadParam.paymentMoney // 应付金额
    const residueMoney = paymentMoney - truePay // 剩余金额
    const money = Number(this.data.param.chargeMoney) // 本次支付金额
    if (residueMoney <= 0) {
      $app.$common.message('应收金额已支付完毕') // 提示信息
      return
    }
    if (money > residueMoney) {
      $app.$common.message('收费金额超出应收金额') // 提示信息
      return
    }
    // 3.调接口
    $app.$common.openLoading() // 开启加载
    $app.$api.contractPay.addContractPayChild({
      chargerecordArray: [param]
    }).then((res) => {
      console.log('api-保存成功', res)
      $app.$common.closeLoading() // 关闭加载
      $app.$common_wx.back('保存成功') // 返回上一页
    })
  }
})